// 引入数据库实例
const db = require("../utils/mysql.js");
// 引入时间格式化的模块
require("../utils/formatTime");
// 引入验证参数是否合法的模块
const v2 = require("../utils/verify2")

const multer = require('multer');
const upload = multer({ storage: multer.memoryStorage() });

// 提交MD文档
// 将前300个字作为文章描述
exports.uploadmd = (req, res) => {

	// 接收表单数据
	const artInfo = req.body;

	new Promise((resolve, reject) => {
		const sql = "insert into article set ?";
		db.query(
			sql,
			{
				user_id: 1,
				title: artInfo.title,
				createTime: new Date().format("yyyy-MM-dd hh:mm:ss"),
				contents: artInfo.content,
				descr: artInfo.content.slice(0, 300),
				type: "md",
			},
			function (err, results) {
				if (err) return res.send({status: 1, message: err.message});
				// SQL 语句执行成功，但影响行数不为 1
				if (results.affectedRows !== 1) {
					return res.sd("失败，未知错误,联系后端人员");
				}
				// 注册成功
				res.sd("成功", 0);
			}
		);
	});

};

// 提交word文档
// 将前300个字作为文章描述
exports.uploadword = (req, res) => {
	upload.single('file')(req, res, (err) => {
		if (v2(req, ["title","descr"], res) !== 0) {
			return;
		}
		if (err instanceof multer.MulterError) {
			console.error(err.message);
			res.status(500).json({message: 'File upload failed.'});
		} else if (err) {
			console.error(err.message);
			res.status(500).json({message: 'File upload failed.'});
		} else {
			// 获取客户端提交的文件名和二进制数据
			const filename = req.body.title;
			const descr = req.body.descr;
			const buffer = req.file.buffer;
			const bufStr = buffer.toString('utf8');
			// const newbuf = Buffer.from(bufStr, 'utf8');
			// console.log(buffer.equals(newbuf));  // 输出 true
			res.sd({
				buffer,
				bufStr
			});
			// 得到buffer之后
			const sql = "insert into article set ?";
			db.query(
				sql,
				{
					user_id: 1,
					title: filename,
					createTime: new Date().format("yyyy-MM-dd hh:mm:ss"),
					contents: bufStr,
					descr: descr,
					type: "word",
				},
				function (err, results) {
					if (err) return res.send({status: 1, message: err.message});
					// SQL 语句执行成功，但影响行数不为 1
					if (results.affectedRows !== 1) {
						return res.sd("失败，未知错误,联系后端人员");
					}
					// 注册成功
					res.sd("成功", 0);
				}
			);
		}
	})
	// new Promise((resolve, reject) => {
	// 	const sql = "insert into article set ?";
	// 	db.query(
	// 		sql,
	// 		{
	// 			user_id: 1,
	// 			title: artInfo.title,
	// 			createTime: new Date().format("yyyy-MM-dd hh:mm:ss"),
	// 			contents: artInfo.content,
	// 			descr: artInfo.content.slice(0, 300),
	// 			type: "word",
	// 		},
	// 		function (err, results) {
	// 			if (err) return res.send({status: 1, message: err.message});
	// 			// SQL 语句执行成功，但影响行数不为 1
	// 			if (results.affectedRows !== 1) {
	// 				return res.sd("失败，未知错误,联系后端人员");
	// 			}
	// 			// 注册成功
	// 			res.sd("成功", 0);
	// 		}
	// 	);
	// });

};

exports.uploadword2=function test(){
	console.log('#hhhhhhhh');
}